package db;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * @author SZQ
 * @db
 * @version
 * @创建时间：2016年3月3日 上午11:37:05
 * @类说明 redis 操作类
 */
public class RedisUtil {
	private static JedisPool jedisPool;
	public static final String redis_srv_ip = "127.0.0.1";

	// 初始化连接池
	static {
		JedisPoolConfig config = new JedisPoolConfig();
		config.setMaxTotal(128);
		config.setMinIdle(10);
		config.setMaxIdle(128);
		config.setMaxWaitMillis(30000l);
		config.setTestOnBorrow(false);
		jedisPool = new JedisPool(config, redis_srv_ip, 6379, 0);
	}

	// 获取 jedis 实例
	public static synchronized Jedis getJedis() {
		Jedis jedis = jedisPool.getResource();
		return jedis;
	}

	// jedis 实例放回pool
	public static void closeJedis(Jedis jedis) {
		if (jedis != null) {
			System.out.println(jedisPool);
			jedisPool.returnResource(jedis);
		}
	}

	/**
	 * @Description: TODO(判断key是否存在)
	 * @author SZQ
	 * @date 2016年3月3日 下午2:27:40
	 * @version V1.0
	 */
	public static boolean keyIsExist(String key) {
		Jedis jedis = RedisUtil.getJedis();
		boolean ret = jedis.exists(key);
		RedisUtil.closeJedis(jedis);
		return ret;
	}

	/**
	 * @Description: TODO(根据key 获取 value)
	 * @author SZQ
	 * @date 2016年3月3日 下午1:57:44
	 * @version V1.0
	 */
	public static String getValue(String key) {
		String value = null;
		Jedis jedis = RedisUtil.getJedis();
		value = jedis.get(key);
		RedisUtil.closeJedis(jedis);
		return value;
	}

	/**
	 * @Description: TODO(存入key value)
	 * @author SZQ
	 * @date 2016年3月3日 下午1:57:44
	 * @version V1.0
	 */
	public static String setToRedis(String key, String value) {
		String ret = "";
		Jedis jedis = RedisUtil.getJedis();
		try {
			ret = jedis.set(key, value);
		} catch (Exception e) {
			ret = "fail";
		}
		RedisUtil.closeJedis(jedis);
		return ret;
	}
}
